package Servlet;


import java.io.IOException;

import java.util.ArrayList;

import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import EntityBeans.Abilita;
import EntityBeans.EsperienzaLavorativa;
import EntityBeans.Feedback;
import EntityBeans.Indirizzo;
import EntityBeans.PossessoAbilita;
import EntityBeans.RichiestaAmicizia;
import EntityBeans.UtenteRegistrato;
import Sessions.AccettaAmiciziaSessionRemote;
import Sessions.RecuperaDatiSessionRemote;
import Sessions.RegistrazioneSessionRemote;
import Sessions.RichiesteAmiciziaSessionRemote;

import java.util.Date;
/**
 * Servlet implementation class ProvaServlet
 */
public class AccettaAmiciziaServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    private RequestDispatcher d;   
    private GestoreContesto contesto;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AccettaAmiciziaServlet() {
        super();
       contesto = new GestoreContesto();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			eseguiRichiesta(request,response);
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		try {
			eseguiRichiesta(request,response);
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	private void eseguiRichiesta(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, NamingException {
		
		AccettaAmiciziaSessionRemote gestore = contesto.getGestore(AccettaAmiciziaSessionRemote.class, "AccettaAmiciziaSessionRemote");
		RichiesteAmiciziaSessionRemote gestore1 = contesto.getGestore(RichiesteAmiciziaSessionRemote.class,"RichiesteAmiciziaSessionRemote");
		String utentemandante = request.getParameter("idmandante");
		String utentericevente = request.getParameter("idricevente");
		String idSessione = request.getParameter("idSessione");
		String richiesta =  request.getParameter("richiesta");
		if(richiesta.equals("accetta"))
		{
		    gestore.cancellaRichiestaAmiciza(utentemandante, utentericevente);
			gestore.aggiungiAmicizia(utentemandante, utentericevente);
		
			
		}
		else
		{
			if(richiesta.equals("rifiuta"))
			{
				gestore.cancellaRichiestaAmiciza(utentemandante, utentericevente);
							
			}
		}
		
		ArrayList<RichiestaAmicizia> richiesteAmicizia = gestore1.richiesteAmicizia(utentemandante);
		
		if(richiesteAmicizia==null || richiesteAmicizia.size()==0)
		{
			request.setAttribute("msg", "Non sono presenti rihcieste di amicizia  per l'utente selezionato");
			request.setAttribute("idSessione", idSessione);
			d=request.getRequestDispatcher("ErroreUtenteReg.jsp");
			d.forward(request, response);
		}
		else
		{
			request.setAttribute("numeroAmicizie", richiesteAmicizia.size());

		    request.setAttribute("msg", "Richieste di amicizia dell'utente:");
			for(int i=0; i<richiesteAmicizia.size();i++)
			{
				request.setAttribute("idmandante"+i, richiesteAmicizia.get(i).getIdutentemandante());
				request.setAttribute("nomemandante"+i, gestore1.ricercaNomeUtente(richiesteAmicizia.get(i).getIdutentemandante()));
				request.setAttribute("cognomemandante"+i, gestore1.ricercaCognomeUtente(richiesteAmicizia.get(i).getIdutentemandante()));
				request.setAttribute("idricevente"+i, richiesteAmicizia.get(i).getIdutentericevente());
				request.setAttribute("nomericevente"+i, gestore1.ricercaNomeUtente(richiesteAmicizia.get(i).getIdutentericevente()));
				request.setAttribute("cognomericevente"+i, gestore1.ricercaCognomeUtente(richiesteAmicizia.get(i).getIdutentericevente()));
				
				
			}
			d=request.getRequestDispatcher("RichiesteAmicizia.jsp");
			d.forward(request, response);
		}
		
	}
}

